package com.dd.logistics.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dd.logistics.entity.SupplierProduct;
import java.util.List;
import java.util.Map;

public interface SupplierProductService extends IService<SupplierProduct> {
    // 获取供应商的商品列表
    List<SupplierProduct> getProductsBySupplierId(Long supplierId);
    
    // 分页查询供应商的商品
    Page<SupplierProduct> getProductsPage(Long supplierId, Integer current, Integer size, String productName);
    
    // 添加供应商商品
    boolean addProduct(SupplierProduct product);
    
    // 更新供应商商品信息
    boolean updateProduct(SupplierProduct product);
    
    // 更新商品状态
    boolean updateStatus(Long id, Integer status);
    
    // 批量更新商品状态
    Map<String, Integer> batchUpdateStatus(List<Long> ids, Integer status);
    
    // 获取供应商商品状态统计
    Map<String, Integer> getStatusCount(Long supplierId);
    
    // 添加批量删除方法
    Map<String, Object> batchDelete(List<Long> ids);
    
    // 添加搜索方法
    Page<SupplierProduct> search(Long supplierId, String productCode, String productName, 
        Integer status, Integer current, Integer size);
    
    // 获取商品详情（包含关联信息）
    SupplierProduct getProductDetail(Long id);
    
    /**
     * 删除商品（包含库存检查）
     * @param id 商品ID
     * @return 是否删除成功
     */
    boolean removeById(Long id);
} 